package com.king.modules.monitor.service.impl;


import java.util.Date;

import org.springframework.stereotype.Service;

import com.king.common.utils.text.StringUtils;
import com.king.framework.base.domain.vo.LoginUser;
import com.king.modules.monitor.service.SysUserOnlineService;
import com.king.modules.system.domain.vo.SysUserOnline;

/**
 * 在线用户 服务层处理
 * 
 * @author king
 */
@Service
public class SysUserOnlineServiceImpl implements SysUserOnlineService {
	/**
	 * 通过登录地址查询信息
	 * 
	 * @param ipaddr
	 *            登录地址
	 * @param user
	 *            用户信息
	 * @return 在线用户信息
	 */
//	@Override
//	public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user) {
//		if (StringUtils.equals(ipaddr, user.getIpaddr())) {
//			return loginUserToUserOnline(user);
//		}
//		return null;
//	}

	/**
	 * 通过用户名称查询信息
	 * 
	 * @param userName
	 *            用户名称
	 * @param user
	 *            用户信息
	 * @return 在线用户信息
	 */
//	@Override
//	public SysUserOnline selectOnlineByUserName(String userName, LoginUser user) {
//		if (StringUtils.equals(userName, user.getUsername())) {
//			return loginUserToUserOnline(user);
//		}
//		return null;
//	}

	/**
	 * 通过登录地址/用户名称查询信息
	 * 
	 * @param ipaddr
	 *            登录地址
	 * @param userName
	 *            用户名称
	 * @param user
	 *            用户信息
	 * @return 在线用户信息
	 */
//	@Override
//	public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user) {
//		if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) {
//			return loginUserToUserOnline(user);
//		}
//		return null;
//	}

	/**
	 * 设置在线用户信息
	 * 
	 * @param user
	 *            用户信息
	 * @return 在线用户
	 */
	@Override
	public SysUserOnline loginUserToUserOnline(LoginUser user) {
		if (StringUtils.isNull(user) || StringUtils.isNull(user.getUser())) {
			return null;
		}
		SysUserOnline sysUserOnline = new SysUserOnline();
		sysUserOnline.setTokenId(user.getToken());
		sysUserOnline.setUserName(user.getUsername());
		sysUserOnline.setIpaddr(user.getIpaddr());
		sysUserOnline.setLoginLocation(user.getLoginLocation());
		sysUserOnline.setBrowser(user.getBrowser());
		sysUserOnline.setOs(user.getOs());
		sysUserOnline.setLoginTime(user.getLoginTime());
		sysUserOnline.setLoginTs(new Date(user.getLoginTime()));
		sysUserOnline.setOrgName(user.getOrgName());
		return sysUserOnline;
	}
}
